#include <iostream>
using namespace std;

// 

class cat_animal
{
public:
    string cat_feat_1; // 爪子
    string cat_feat_2; // 胡须

    cat_animal(){}
    cat_animal(string a,string b):cat_feat_1(a),cat_feat_2(b)
    {}

};

class tiger:virtual public cat_animal
{
public:
    string tiger_feat_1; // 虎斑
    string tiger_feat_2; // 王字头纹

    tiger(){}
    tiger(string a,string b):tiger_feat_1(a),tiger_feat_2(b){}
};

class lion:virtual public cat_animal
{
public:
    string lion_feat_1; // 无条纹
    string lion_feat_2; // 爆炸头

    lion(){}
    lion(string a,string b):lion_feat_1(a),lion_feat_2(b){}
};

class tigon:public tiger,public lion
{
public:
    string tigon_feat_1; // 体型小
    string tigon_feat_2; // 先天性弱

    tigon(){}
    tigon(string a,string b,string c,string d):tiger("虎斑","王字头纹"),lion("无条纹","爆炸头"),tigon_feat_1(a),tigon_feat_2(b)
    {
        this->tiger::cat_animal::cat_feat_1=c;
        this->tiger::cat_animal::cat_feat_2=d;
    }
};

int main(int argc, char const *argv[])
{
    tigon t1("体型小","先天性弱","爪子","胡须");
    cout<<t1.tigon_feat_1<<endl;
    cout<<t1.tigon_feat_2<<endl;

    cout<<t1.tiger::tiger_feat_1<<endl;
    cout<<t1.tiger::tiger_feat_2<<endl;

    cout<<t1.lion::lion_feat_1<<endl;
    cout<<t1.lion::lion_feat_2<<endl;

    cout<<t1.tiger::cat_animal::cat_feat_1<<endl;
    cout<<t1.tiger::cat_animal::cat_feat_2<<endl;
    return 0;
}
